package cn.com.yusys.yusp.admin.repository.mapper;

import cn.com.yusys.yusp.admin.domain.AcrmGridInfo;
import cn.com.yusys.yusp.admin.domain.AdminSmLog;
import cn.com.yusys.yusp.commons.mapper.CommonMapper;
import cn.com.yusys.yusp.commons.mapper.QueryModel;

import java.util.List;
import java.util.Map;

/**
 * 
 * @项目名称: yusp-admin
 * @类名称: GridGeneralMapper
 * @类描述: 数据操作层
 * @功能描述:
 * @创建人:
 * @创建时间: 2021-5-26
 * @修改备注:
 * @修改记录: 修改时间 修改人员 修改原因
 *        -------------------------------------------------------------
 * @version 1.0.0
 * @Copyright (c) 2017宇信科技-版权所有
 */
public interface GridGeneralMapper extends CommonMapper<AdminSmLog> {
    /**
     * 
     * @方法名称: queryOneLevel
     * @方法描述: 获取一级网格信息
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryOneLevel(QueryModel model);
    /**
     *
     * @方法名称: queryTwoLevel
     * @方法描述: 获取二级网格信息
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryTwoLevel(QueryModel model);

    /**
     *
     * @方法名称: queryThirdLevel
     * @方法描述: 获取二级网格及三级网格信息
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryThirdLevel(QueryModel model);

    /**
     *
     * @方法名称: queryOnlyOneLevel
     * @方法描述: 仅获取一级网格 无参
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryOnlyOneLevel(QueryModel model);

    /**
     *
     * @方法名称: queryOneLevelByOrgId
     * @方法描述: 机构ID查询一级网格及该网格下的二级网格
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryOneLevelByOrgId(QueryModel model);

    /**
     *
     * @方法名称: queryTwoLevelGridByUserId
     * @方法描述: 用户ID查询二级网格及该网格下的三级建筑物点
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryTwoLevelGridByUserId(QueryModel model);

    /**
     *
     * @方法名称: queryOnlyOneLevelByOrgId
     * @方法描述: 机构ID查询一级网格 用于查找二级网格的上级网格
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryOnlyOneLevelByOrgId(QueryModel model);

    /**
     *
     * @方法名称: queryOnlyTwoLevelByUserId
     * @方法描述: 用户ID查询二级网格 用于查找三级网格的上级网格
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryOnlyTwoLevelByUserId(QueryModel model);

    /**
     *
     * @方法名称: queryUpOrgId
     * @方法描述: 机构ID查上级机构
     * @参数与返回说明:
     * @算法描述:
     */
    List<Map<String, Object>> queryUpOrgId(Map map);

    /**
     *
     * @方法名称: insertGridData
     * @方法描述: 新建一二级网格数据
     * @参数与返回说明:
     * @算法描述:
     */
    int insertGridData(AcrmGridInfo acrmGridInfo);


    List<Map<String, Object>> queryOnlyOneLevelModify(QueryModel model);

    List<Map<String, Object>> querySecByGridName(QueryModel model);

    List<Map<String, Object>> queryOnlyOneModifyPolygon(QueryModel model);

    List<Map<String, Object>> queryOnlyTwoModifyPolygon(QueryModel model);

    List<Map<String, Object>> queryModifyPolygon(QueryModel model);

    int updataPolygonInfo(Map map);

    List<Map<String, Object>> queryOnlyTwoLevelGridModify(QueryModel queryModel);

    List<Map<String, Object>> queryTwoModifyPolygon(QueryModel model);

    List<Map<String, Object>> queryTwoLevelAndUp(QueryModel model);

    List<Map<String, Object>> selectGridTableListRoleLevel1(QueryModel model);
    List<Map<String, Object>> selectGridTableListRoleLevel2(QueryModel model);
    List<Map<String, Object>> selectGridTableListRoleLevel3(QueryModel model);

    List<Map<String, Object>> queryGridInfoById(QueryModel queryModel);

    List<Map<String, Object>> queryGridKeyManById(QueryModel queryModel);

    List<Map<String, Object>> queryGridBuildById(QueryModel queryModel);

    int insertKeyManGridData(Map queryModel);

    int updateKeyManGridData(Map queryModel);

    void deleteById(String ids);

    List<Map<String, Object>> selectOneLevelExist(Map queryModel);

    int insertGridData2Unit(Map map);

    void updateBuildInfoGridData(Map map);

    void deleteBuildById(String ids);

    void deleteBuildInGridInfoById(String ids);

    int updateGridInfoById(Map map);

    List<Map<String, Object>> selectGridDetailById(Map map);

    int insertGridInfoById(Map map);

    List<Map<String, Object>> selectGridUserFPById(Map map);

    int insertGridUserFP(Map map);

    int updateGridUserFP(Map map);

    int insertGridTransfer(Map map);

    List<Map<String, Object>> queryOneLevelGridInfo(QueryModel queryModel);
    List<Map<String, Object>> queryOneLevelGridInfoCustNum(QueryModel queryModel);
    List<Map<String, Object>> queryOneLevelGridInfoCustNumChange(QueryModel queryModel);

    List<Map<String, Object>> queryTwoLevelGridInfo(QueryModel queryModel);

    List<Map<String, Object>> queryTwoLevelGridInfoCustNum(QueryModel queryModel);

    List<Map<String, Object>> queryTwoLevelGridInfoCustNumChange(QueryModel queryModel);
}